﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;

namespace NHA_HANG_BUFFET
{
    public partial class frmQuanLyBep : DevComponents.DotNetBar.Office2007Form
    {
        public frmQuanLyBep()
        {
            InitializeComponent();
        }
        //Khai báo property cho NhanVien
        private DTO.NhanVien nv = null;

        public DTO.NhanVien NV
        {
            get { return nv; }
            set { nv = value; }
        }

        //______Khoi Tao Cua Cuong_________________

        List<DataTable> list = new List<DataTable>();
        string thutruocdo = null;
        string thuhientai = null;
        int MaTuan;
        string[] mangthu = new string[7] { "2", "3", "4", "5", "6", "7", "CN" };


        //_______Khoi Tao Cua Cuong_______________________
        //------------------------------------------------------------------------------------------------------------
        //Khởi tạo mới Bus
        
        PhieuXuatKhoB busPX = new PhieuXuatKhoB();
        PhieuYeuCauNLB busPYCNL = new PhieuYeuCauNLB();
        CTPhieuXuatB busCTPX = new CTPhieuXuatB();
        CTPhieuYeuCauNLB busCTPYCNL = new CTPhieuYeuCauNLB();
        DichVuB busDV = new DichVuB();
        NguyenVatLieuB busNVL = new NguyenVatLieuB();        
        DataTable dt = new DataTable();
        ThucDonDuTruB busTDDT = new ThucDonDuTruB();
        CTThucDonB busCTTD = new CTThucDonB();

        //Form Load quản lý bếp
        private void frmQuanLyBep_Load(object sender, EventArgs e)
        {
            //Hiện tên nhân viên và nút thoát
            this.lbDangXuat.ForeColor = Color.Red;
            this.lblTenNV.ForeColor = Color.Red;
            this.lblTenNV.Text = NV.TenNV;
            // this.lbTenNV.Text = nv.TenNV;
            //________________________________
            LayDSPhieuYC();
            LayDSPhieuXuat();
            LayDSChiTietPhieuYC();
            LayChiTietDSPhieuXuat();  
            //Khoi tao chon thu 2
            lblthu2.BackColor = Color.Red;
            lblthu3.BackColor = Color.DodgerBlue;
            lblthu4.BackColor = Color.DodgerBlue;
            lblthu5.BackColor = Color.DodgerBlue;
            lblthu6.BackColor = Color.DodgerBlue;
            lblthu7.BackColor = Color.DodgerBlue;
            lblchunhat.BackColor = Color.DodgerBlue;
            //thutruocdo = lblthu2.Text.ToString();            
            thuhientai = lblthu2.Text.ToString();
            //Goi su kien thú 2 load 
            //lblthu2_Click(sender, e);
            //lblthu8_Click(sender, e);
        }
        //___________________________________________________Phiếu yêu cầu___________________________________________
        //Lấy danh sách phiếu yêu cầu
        public void LayDSPhieuYC()
        {
            int stt = 0;
            DataTable dt = new DataTable();
            dt = busPYCNL.bLayDSPhieuYeuCauNL();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                stt++;
                dgvDanhSachPhieuYC.Rows.Add(stt.ToString(), dt.Rows[i]["MaPhieuYC"], dt.Rows[i]["NgayYeuCau"], dt.Rows[i]["TenNV"], dt.Rows[i]["TenNV2"]);
            }
            //dgvDanhSachPhieuYC.DataSource = bus.bLayDSPhieuYeuCauNL();
        }

        //Nút đăng xuất
        private void lbDangXuat_Click(object sender, EventArgs e)
        {

            this.Close();
        }

        //Lấy danh sách phiếu yêu cầu theo ngày bắt đầu
        public void LayDSPhieuYCTheoNgayBatDau(DateTime dateBatDau)
        {
            int stt = 0;
            DataTable dt = new DataTable();
            dt = busPYCNL.LayDSPhieuYCTheoNgayBatDau(dateBatDau);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                stt++;
                dgvDanhSachPhieuYC.Rows.Add(stt.ToString(), dt.Rows[i]["MaPhieuYC"], dt.Rows[i]["NgayYeuCau"], dt.Rows[i]["TenNV"], dt.Rows[i]["TenNV2"]);
            }

        }
        //Lấy danh sách phiếu yêu cầu theo ngày
        public void LayDSPhieuYCTheoNgay(DateTime dateBatDau, DateTime dateKetThuc)
        {
            int stt = 0;
            DataTable dt = new DataTable();
            dt = busPYCNL.LayDSPhieuYCTheoNgay(dateBatDau, dateKetThuc);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                stt++;
                dgvDanhSachPhieuYC.Rows.Add(stt.ToString(), dt.Rows[i]["MaPhieuYC"], dt.Rows[i]["NgayYeuCau"], dt.Rows[i]["TenNV"], dt.Rows[i]["TenNV2"]);
            }

        }

        //Sự kiện chọn ngày bắt đầu
        private void dtBatDau_TextChanged(object sender, EventArgs e)
        {
            dgvDanhSachPhieuYC.Rows.Clear();
            LayDSPhieuYCTheoNgayBatDau(Convert.ToDateTime(dtBatDau.Value));

        }
        //Sự kiện chọn ngày kết thúc
        private void dtKetThuc_TextChanged(object sender, EventArgs e)
        {
            dgvDanhSachPhieuYC.Rows.Clear();
            LayDSPhieuYCTheoNgay(Convert.ToDateTime(dtBatDau.Value), Convert.ToDateTime(dtKetThuc.Value));
        }
        //__________________________________________Phiếu xuất___________________________________________________

        //Load danh sách phiếu xuất
        public void LayDSPhieuXuat()
        {
            int stt = 0;
            DataTable dt = new DataTable();
            dt = busPX.bLayDSPhieuXuat();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                stt++;
                dgvDSPhieuXuat.Rows.Add(stt.ToString(), dt.Rows[i]["MaPhieuX"], dt.Rows[i]["NgayXuat"], dt.Rows[i]["TenNV"], dt.Rows[i]["NVLapPhieuX"], dt.Rows[i]["MaPYC"]);
            }
            //dgvDanhSachPhieuYC.DataSource = bus.bLayDSPhieuYeuCauNL();
            //gvLichLamViec.Rows(i).Cells(0).Style.BackColor = Color.Red 'tô màu đỏ dòng bị lỗi
            for (int i = 0; i < dgvDSPhieuXuat.Rows.Count; i++)
            {
                if (dgvDSPhieuXuat.Rows[i].Cells[4].Value.ToString() == "")
                {
                    dgvDSPhieuXuat.Rows[i].DefaultCellStyle.BackColor = Color.AntiqueWhite;
                }
            }
        }
        //Lấy danh sách phiếu yêu cầu theo ngày bắt đầu
        public void LayDSPhieuXuatNgayBatDau1(DateTime dateBatDau)
        {
            int stt = 0;
            DataTable dt = new DataTable();
            dt = busPX.LayDSPhieuXuatTheoNgayBatDau(dateBatDau);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                stt++;
                dgvDSPhieuXuat.Rows.Add(stt.ToString(), dt.Rows[i]["MaPhieuX"], dt.Rows[i]["NgayXuat"], dt.Rows[i]["TenNV"], dt.Rows[i]["NVLapPhieuX"], dt.Rows[i]["MaPYC"]);
            }

        }
        //Lấy danh sách phiếu yêu cầu theo ngày
        public void LayDSPhieuXuatTheoNgay1(DateTime dateBatDau, DateTime dateKetThuc)
        {
            int stt = 0;
            DataTable dt = new DataTable();
            dt = busPX.LayDSPhieuXuatTheoNgay(dateBatDau, dateKetThuc);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                stt++;
                dgvDSPhieuXuat.Rows.Add(stt.ToString(), dt.Rows[i]["MaPhieuX"], dt.Rows[i]["NgayXuat"], dt.Rows[i]["TenNV"], dt.Rows[i]["NVLapPhieuX"], dt.Rows[i]["MaPYC"]);
            }

        }

        //Sự kiện chọn ngày bắt đầu
        private void dtBatDau1_TextChanged_1(object sender, EventArgs e)
        {
            dgvDSPhieuXuat.Rows.Clear();
            LayDSPhieuXuatNgayBatDau1(Convert.ToDateTime(dtBatDau1.Value));
        }

        //Sự kiện chọn ngày kết thúc
        private void dtKetThuc1_TextChanged_1(object sender, EventArgs e)
        {
            dgvDSPhieuXuat.Rows.Clear();
            LayDSPhieuXuatTheoNgay1(Convert.ToDateTime(dtBatDau1.Value), Convert.ToDateTime(dtKetThuc1.Value));
        }

        //Lấy danh sách Chi tiết phiêu yêu cầu____________________________________________________________________________
        public void LayDSChiTietPhieuYC()
        {
            dgvChiTietPhieuYC.DataSource = busCTPYCNL.bLayDSChiTietPhieuYC();
        }

        //Lấy chi tiết phiếu yêu cầu theo MapYC
        public void LayChiTietPhieuYC(int MaPYC)
        {
            dgvChiTietPhieuYC.DataSource = busCTPYCNL.bLayChiTietPhieuYC(MaPYC);
        }
        //Sự kiện cell click

        private void dgvDanhSachPhieuYC_CellClick_1(object sender, DataGridViewCellEventArgs e)
        {
            int vitri = e.RowIndex;
            //Lấy vị trí trên giao diện của dgvDanhSachPhieuXuat
            string tam = dgvDanhSachPhieuYC.Rows[vitri].Cells[1].Value.ToString();
            int tam1 = int.Parse(tam.ToString());
            //dgvChiTietPhieuYC.Rows.Clear();
            LayChiTietPhieuYC(tam1);
        }
        //Lấy danh sách chi tiết phiếu nhận nguyên liệu_____________________________________________________________________
        public void LayChiTietDSPhieuXuat()
        {
            dgvChiTietPhieuXuat.DataSource = busCTPX.bLayDSChiTietPhieuXuat();
        }
        //Lấy chi tiết phiếu xuất theo Mã phiếu xuất
        public void LayChiTietPhieuXuat(int MaPX)
        {
            dgvChiTietPhieuXuat.DataSource = busCTPX.bLayChiTietPhieuXuat(MaPX);
        }
        //Sự kiện Cell Click của danh sách phiếu xuất
        public void dgvDSPhieuXuat_CellClick(object sender, DataGridViewCellEventArgs e)
        {

            int vitri = e.RowIndex;
            //Lấy vị trí trên giao diện của dgvDSPhieuXuat
            string tam = dgvDSPhieuXuat.Rows[vitri].Cells[1].Value.ToString();
            int tam1 = int.Parse(tam.ToString());
            LayChiTietPhieuXuat(tam1);
        }

        //Ký nhận xuất kho
        private void btnKyNhan_Click(object sender, EventArgs e)
        {
            //___dataGridView1.CurrentRow.Cells[0].Value;
            //Lấy vị trí click chuột trên Data Grid View
            string tam1 = dgvDSPhieuXuat.CurrentRow.Cells[1].Value.ToString();
            int MaPX = int.Parse(tam1.ToString());
            int MaNVLapPX = nv.MaNV;

            string tam2 = dgvDSPhieuXuat.CurrentRow.Cells[4].Value.ToString();
            if (tam2 != "")
            {
                MessageBox.Show("Phiếu đã ký nhận!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                busCTPX.bCapNhatPhieuXuatKho(MaNVLapPX, MaPX);
                dgvDSPhieuXuat.Rows.Clear();
                LayDSPhieuXuat();
                MessageBox.Show("Ký nhận thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
        }
        //-------Code Cuong ---------------------------------------------------------------------------------------------------------------------------
        private void dateTime_NgayKT_TextChanged(object sender, EventArgs e)
        {
            dgv_baocao.Rows.Clear();
            hienthithudondaban(dateTime_NgayBD.Value, dateTime_NgayKT.Value);

        }
        private void hienthithudondaban(DateTime ngaybd, DateTime ngaykt)
        {
            DataTable dt = new DataTable();
            DichVuB bus = new DichVuB();
            dt = bus.dLayDSDichVuSoPhanBanTheoNgay(ngaybd, ngaykt);
            int stt = 0;
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                stt++;
                dgv_baocao.Rows.Add(stt.ToString(), dt.Rows[i]["MaDV"], dt.Rows[i]["TenDV"], dt.Rows[i]["sl"]);
            }
            stt++;


        }

        private void dgv_baocao_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 4)
            {
                if (dgv_thucdondutru.Rows.Count == 0)//Luoi rong thi add vao
                {
                    dgv_thucdondutru.Rows.Add(dgv_baocao.Rows[e.RowIndex].Cells["MaMon"].Value.ToString(), dgv_baocao.Rows[e.RowIndex].Cells["tenmonan"].Value.ToString());
                    //if (thuhientai.CompareTo("2") == 0)
                    //{
                    //    lblthu2_Click(sender, e);
                    //}
                }
                else// Nguoc lai luoi khac rong  // thi kiem tra co chua neu chua thi add con co rui thi ko add
                {
                    if (!KiemTraMaMon(dgv_baocao.Rows[e.RowIndex].Cells["MaMon"].Value.ToString()))//Khong Co ton tai thi aadd
                    {
                        dgv_thucdondutru.Rows.Add(dgv_baocao.Rows[e.RowIndex].Cells["MaMon"].Value.ToString(), dgv_baocao.Rows[e.RowIndex].Cells["tenmonan"].Value.ToString());
                        //if (thuhientai.CompareTo("2") == 0)
                        //{
                        //    lblthu2_Click(sender, e);
                        //}
                    }
                    else //Co ton tai khong add them vao 
                    {

                    }

                }

            }
        }
        private bool KiemTraMaMon(string mamon)
        {
            bool kt = false;

            for (int i = 0; i < dgv_thucdondutru.Rows.Count; i++)
            {
                if (dgv_thucdondutru.Rows[i].Cells["colMaMon"].Value.ToString().CompareTo(mamon) == 0)
                {
                    kt = true;
                    return kt;
                }
            }
            return kt;
        }
        //Luu du lieu vao DataTable ao
        private DataTable Save_DataTable(string thu)
        {
            //Khoi tao
            // int kq=0;
            DataTable dt = new DataTable();
            //dt.Columns.Add("STT", typeof(int));
            dt.Columns.Add("MaMon", typeof(int));
            dt.Columns.Add("TenMon", typeof(string));
            dt.Columns.Add("SoPhan", typeof(int));
            dt.Columns.Add("Thu", typeof(string));
           
            //Kiem tra luoi co rong hay khong
            if (dgv_thucdondutru.Rows.Count == 0)//Neu rong 
            {
                //Khong lam gi het

            }
            else//Khac rong
            {

                //Lua gia tri vao DataTable tam 
                for (int i = 0; i < dgv_thucdondutru.Rows.Count; i++)
                {
                    dt.Rows.Add(Int16.Parse(dgv_thucdondutru.Rows[i].Cells["colMaMon"].Value.ToString()), dgv_thucdondutru.Rows[i].Cells["colTenMon"].Value.ToString(), Int16.Parse(dgv_thucdondutru.Rows[i].Cells["colSoPhan"].Value.ToString()), thu);

                }
            }
            return dt;

        }
        //Kiem tra cột số phần có rỗng hay khong ?
        private bool KiemTraCotSoPhan()
        {
            bool t = true;
            for (int i = 0; i < dgv_thucdondutru.Rows.Count; i++)
            {
                if (dgv_thucdondutru.Rows[i].Cells["colSoPhan"].Value == null)//Neu co mot o chua co gia tri bao phai nhap
                {

                    //MessageBox.Show(dgv_thucdondutru.Rows[i].Cells["colTenMon"].Value.ToString());
                    t = false;
                }
            }
            return t;
        }
        //Kiểm tra DataTable lưu dữ liệu ảo đó có tồn tại trong list không
        private bool KiemTraDataTableTonTai(string thu, ref int tam)
        {
            //int tam;
            bool kt = false;
            if (list.Count == 0)
            {
                return kt;
            }
            for (int i = 0; i < list.Count; i++)
            {
                for (int j = 0; j < list[i].Rows.Count; j++)
                {
                    if (list[i].Rows[j]["Thu"].ToString() == thu)
                    {
                        kt = true;
                        tam = i;

                    }
                }
            }
            return kt;

        }
        //Load dữ liệu ngược vào lưới 
        private void Load_DGV(DataTable dt)
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                dgv_thucdondutru.Rows.Add(dt.Rows[i]["MaMon"].ToString(), dt.Rows[i]["TenMon"].ToString(), dt.Rows[i]["SoPhan"].ToString());
            }

        }
        //Ham tim name cua cai thu tdruoc đó và set mau cho thu
        private void SetMauThu(string thu)
        {
            //Cho mau het cac thu la mau xanh
            lblthu2.BackColor = Color.DodgerBlue;
            lblthu3.BackColor = Color.DodgerBlue;
            lblthu4.BackColor = Color.DodgerBlue;
            lblthu5.BackColor = Color.DodgerBlue;
            lblthu6.BackColor = Color.DodgerBlue;
            lblthu7.BackColor = Color.DodgerBlue;
            lblchunhat.BackColor = Color.DodgerBlue;
            for (int i = 0; i < 7; i++)
            {
                if (mangthu[i].CompareTo(thu) == 0)//Neu so sanh la giong nhau
                {
                    //Set mau thu nay bang mau do
                    //Tim lbl của cái thu này
                    switch (i)
                    {
                        case 0:
                            lblthu2.BackColor = Color.Red;
                            break;
                        case 1:
                            lblthu3.BackColor = Color.Red;
                            break;
                        case 2:
                            lblthu4.BackColor = Color.Red;
                            break;
                        case 3:
                            lblthu5.BackColor = Color.Red;
                            break;
                        case 4:
                            lblthu6.BackColor = Color.Red;
                            break;
                        case 5:
                            lblthu7.BackColor = Color.Red;
                            break;
                        case 6:
                            lblchunhat.BackColor = Color.Red;
                            break;
                        default:
                            MessageBox.Show("Khong thuoc cac th tren");
                            break;

                    }

                }
            }
        }

        //private void bttAdd_Click(object sender, EventArgs e)
        //{

        //    if (dgv_thucdondutru.Rows.Count == 0)//Luoi rong thi add vao
        //    {
        //        dgv_thucdondutru.Rows.Add(cbbDV.SelectedValue.ToString(), cbbDV.Text);
        //    }
        //    else// Nguoc lai luoi khac rong  // thi kiem tra co chua neu chua thi add con co rui thi ko add
        //    {
        //        if (!KiemTraMaMon(cbbDV.SelectedValue.ToString()))//Khong Co ton tai thi aadd
        //        {
        //            dgv_thucdondutru.Rows.Add(cbbDV.SelectedValue.ToString(), cbbDV.Text);
        //        }
        //        else //Co ton tai khong add them vao 
        //        {

        //        }

        //    }

        //}
        private void lblthu2_Click(object sender, EventArgs e)
        {
            //Kiem tra thu truoc do
            int i = 0;
            thutruocdo = thuhientai;
            
            if (KiemTraCotSoPhan() == false)
            {
                MessageBox.Show("Chưa nhập ô số phần or chưa di chuyển dấu nháy sang vị trí khác");
                SetMauThu(thutruocdo);
            }
            else
            {
                thuhientai = lblthu2.Text.ToString();
                SetMauThu(thuhientai);
                if (KiemTraDataTableTonTai(thutruocdo, ref i))//Neu nó tồn tai trong list thi khong can show ra
                {
                    //Can cap nhat lai toan bo bang cach bo cai cu add cai moi vao list
                    //Xoa DataTable nay ra khoi list
                    list.RemoveAt(i);
                    //Lua vao mot DataTable moi 
                    DataTable dt = new DataTable();
                    dt = Save_DataTable(thutruocdo);
                    //Add vao list 
                    list.Add(dt);
                    //Xoa du lieu trong dgv_baocao hien hanh
                    dgv_thucdondutru.Rows.Clear();

                }
                else//Neu chua ton tai thi Save
                {
                    // Save_DataTable(thutruocdo);
                    DataTable dt = new DataTable();
                    dt = Save_DataTable(thutruocdo);
                    list.Add(dt);
                    dgv_thucdondutru.Rows.Clear();
                }
                if (KiemTraDataTableTonTai(thuhientai, ref i))//Neu no ton tai trong list thi show ra 
                {
                    Load_DGV(list[i]);
                }
                else//Nguoc lai thi xoa
                {

                } 
            }
           //--Load DSVVL Thuc don du tru
            Load_DSNVLDT(MaTuan, thuhientai);
        }
        private void lblthu3_Click(object sender, EventArgs e)
        {
            int i = 0;
            thutruocdo = thuhientai;

            if (KiemTraCotSoPhan() == false)
            {
                MessageBox.Show("Chưa nhập ô số phần or chưa di chuyển dấu nháy sang vị trí khác");
                SetMauThu(thutruocdo);
            }
            else
            {
                thuhientai = lblthu3.Text.ToString();
                SetMauThu(thuhientai);
                //Kiem tra thu truoc do
                if (KiemTraDataTableTonTai(thutruocdo, ref i))//Neu nó tồn tai trong list thi khong can show ra
                {
                    //Can cap nhat lai toan bo bang cach bo cai cu add cai moi vao list
                    //Xoa DataTable nay ra khoi list
                    list.RemoveAt(i);
                    //Lua vao mot DataTable moi 
                    DataTable dt = new DataTable();
                    dt = Save_DataTable(thutruocdo);
                    //Add vao list 
                    list.Add(dt);
                    //Xoa du lieu trong dgv_baocao hien hanh
                    dgv_thucdondutru.Rows.Clear();
                }
                else//Neu chua ton tai thi Save
                {

                    DataTable dt = new DataTable();
                    dt = Save_DataTable(thutruocdo);
                    list.Add(dt);
                    dgv_thucdondutru.Rows.Clear();
                }
                if (KiemTraDataTableTonTai(thuhientai, ref i))//Neu no ton tai trong list thi show ra
                {
                    Load_DGV(list[i]);
                }
                else//Nguoc lai thi xoa
                {

                }
               
            }
            //--Load DSVVL Thuc don du tru
            Load_DSNVLDT(MaTuan, thuhientai);

        }

        private void lblthu4_Click(object sender, EventArgs e)
        {
            int i = 0;
            thutruocdo = thuhientai;

            if (KiemTraCotSoPhan() == false)
            {
                MessageBox.Show("Chưa nhập ô số phần or chưa di chuyển dấu nháy sang vị trí khác");
                SetMauThu(thutruocdo);
            }
            else
            {
                thuhientai = lblthu4.Text.ToString();
                SetMauThu(thuhientai);
                //Kiem tra thu truoc do
                if (KiemTraDataTableTonTai(thutruocdo, ref i))//Neu nó tồn tai trong list thi khong can show ra
                {
                    //Can cap nhat lai toan bo bang cach bo cai cu add cai moi vao list
                    //Xoa DataTable nay ra khoi list
                    list.RemoveAt(i);
                    //Lua vao mot DataTable moi 
                    DataTable dt = new DataTable();
                    dt = Save_DataTable(thutruocdo);
                    //Add vao list 
                    list.Add(dt);
                    //Xoa du lieu trong dgv_baocao hien hanh
                    dgv_thucdondutru.Rows.Clear();
                }
                else//Neu chua ton tai thi Save
                {

                    DataTable dt = new DataTable();
                    dt = Save_DataTable(thutruocdo);
                    list.Add(dt);
                    dgv_thucdondutru.Rows.Clear();
                }
                if (KiemTraDataTableTonTai(thuhientai, ref i))//Neu no ton tai trong list thi show ra
                {
                    Load_DGV(list[i]);
                }
                else//Nguoc lai thi xoa
                {

                }
            }
            //--Load DSVVL Thuc don du tru
            Load_DSNVLDT(MaTuan, thuhientai);
        }

        private void lblthu5_Click(object sender, EventArgs e)
        {
            int i = 0;
            thutruocdo = thuhientai;

            if (KiemTraCotSoPhan() == false)
            {
                MessageBox.Show("Chưa nhập ô số phần or chưa di chuyển dấu nháy sang vị trí khác");
                SetMauThu(thutruocdo);
            }
            else
            {
                thuhientai = lblthu5.Text.ToString();
                SetMauThu(thuhientai);
                //Kiem tra thu truoc do
                if (KiemTraDataTableTonTai(thutruocdo, ref i))//Neu nó tồn tai trong list thi khong can show ra
                {
                    //Can cap nhat lai toan bo bang cach bo cai cu add cai moi vao list
                    //Xoa DataTable nay ra khoi list
                    list.RemoveAt(i);
                    //Lua vao mot DataTable moi 
                    DataTable dt = new DataTable();
                    dt = Save_DataTable(thutruocdo);
                    //Add vao list 
                    list.Add(dt);
                    //Xoa du lieu trong dgv_baocao hien hanh
                    dgv_thucdondutru.Rows.Clear();
                }
                else//Neu chua ton tai thi Save
                {

                    DataTable dt = new DataTable();
                    dt = Save_DataTable(thutruocdo);
                    list.Add(dt);
                    dgv_thucdondutru.Rows.Clear();
                }
                if (KiemTraDataTableTonTai(thuhientai, ref i))//Neu no ton tai trong list thi show ra
                {
                    Load_DGV(list[i]);
                }
                else//Nguoc lai thi xoa
                {

                }
            }
            //--Load DSVVL Thuc don du tru
            Load_DSNVLDT(MaTuan, thuhientai);
        }

        private void lblthu6_Click(object sender, EventArgs e)
        {
            int i = 0;
            thutruocdo = thuhientai;

            if (KiemTraCotSoPhan() == false)
            {
                MessageBox.Show("Chưa nhập ô số phần or chưa di chuyển dấu nháy sang vị trí khác");
                SetMauThu(thutruocdo);
            }
            else
            {
                thuhientai = lblthu6.Text.ToString();
                SetMauThu(thuhientai);
                //Kiem tra thu truoc do
                if (KiemTraDataTableTonTai(thutruocdo, ref i))//Neu nó tồn tai trong list thi khong can show ra
                {
                    //Can cap nhat lai toan bo bang cach bo cai cu add cai moi vao list
                    //Xoa DataTable nay ra khoi list
                    list.RemoveAt(i);
                    //Lua vao mot DataTable moi 
                    DataTable dt = new DataTable();
                    dt = Save_DataTable(thutruocdo);
                    //Add vao list 
                    list.Add(dt);
                    //Xoa du lieu trong dgv_baocao hien hanh
                    dgv_thucdondutru.Rows.Clear();
                }
                else//Neu chua ton tai thi Save
                {

                    DataTable dt = new DataTable();
                    dt = Save_DataTable(thutruocdo);
                    list.Add(dt);
                    dgv_thucdondutru.Rows.Clear();
                }
                if (KiemTraDataTableTonTai(thuhientai, ref i))//Neu no ton tai trong list thi show ra
                {
                    Load_DGV(list[i]);
                }
                else//Nguoc lai thi xoa
                {

                }
            }
            //--Load DSVVL Thuc don du tru
            Load_DSNVLDT(MaTuan, thuhientai);
        }

        private void lblthu7_Click(object sender, EventArgs e)
        {
            int i = 0;
            thutruocdo = thuhientai;

            if (KiemTraCotSoPhan() == false)
            {
                MessageBox.Show("Chưa nhập ô số phần or chưa di chuyển dấu nháy sang vị trí khác");
                SetMauThu(thutruocdo);
            }
            else
            {
                thuhientai = lblthu7.Text.ToString();
                SetMauThu(thuhientai);
                //Kiem tra thu truoc do
                if (KiemTraDataTableTonTai(thutruocdo, ref i))//Neu nó tồn tai trong list thi khong can show ra
                {
                    //Can cap nhat lai toan bo bang cach bo cai cu add cai moi vao list
                    //Xoa DataTable nay ra khoi list
                    list.RemoveAt(i);
                    //Lua vao mot DataTable moi 
                    DataTable dt = new DataTable();
                    dt = Save_DataTable(thutruocdo);
                    //Add vao list 
                    list.Add(dt);
                    //Xoa du lieu trong dgv_baocao hien hanh
                    dgv_thucdondutru.Rows.Clear();
                }
                else//Neu chua ton tai thi Save
                {

                    DataTable dt = new DataTable();
                    dt = Save_DataTable(thutruocdo);
                    list.Add(dt);
                    dgv_thucdondutru.Rows.Clear();
                }
                if (KiemTraDataTableTonTai(thuhientai, ref i))//Neu no ton tai trong list thi show ra
                {
                    Load_DGV(list[i]);
                }
                else//Nguoc lai thi xoa
                {

                }
            }
            //--Load DSVVL Thuc don du tru
            Load_DSNVLDT(MaTuan, thuhientai);
        }

        private void lblchunhat_Click(object sender, EventArgs e)
        {
            int i = 0;
            thutruocdo = thuhientai;

            if (KiemTraCotSoPhan() == false)
            {
                MessageBox.Show("Chưa nhập ô số phần or chưa di chuyển dấu nháy sang vị trí khác");
                SetMauThu(thutruocdo);
            }
            else
            {
                thuhientai = lblchunhat.Text.ToString();
                SetMauThu(thuhientai);
                //Kiem tra thu truoc do
                if (KiemTraDataTableTonTai(thutruocdo, ref i))//Neu nó tồn tai trong list thi khong can show ra
                {
                    //Can cap nhat lai toan bo bang cach bo cai cu add cai moi vao list
                    //Xoa DataTable nay ra khoi list
                    list.RemoveAt(i);
                    //Lua vao mot DataTable moi 
                    DataTable dt = new DataTable();
                    dt = Save_DataTable(thutruocdo);
                    //Add vao list 
                    list.Add(dt);
                    //Xoa du lieu trong dgv_baocao hien hanh
                    dgv_thucdondutru.Rows.Clear();
                }
                else//Neu chua ton tai thi Save
                {

                    DataTable dt = new DataTable();
                    dt = Save_DataTable(thutruocdo);
                    list.Add(dt);
                    dgv_thucdondutru.Rows.Clear();
                }
                if (KiemTraDataTableTonTai(thuhientai, ref i))//Neu no ton tai trong list thi show ra
                {
                    Load_DGV(list[i]);
                }
                else//Nguoc lai thi xoa
                {

                }
            }
            //--Load DSVVL Thuc don du tru
            Load_DSNVLDT(MaTuan, thuhientai);
        }

        private void dgv_thucdondutru_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            DataTable dt = new DataTable();
            if (e.ColumnIndex == 4)//Chon nut xoa
            {
                dgv_thucdondutru.Rows.RemoveAt(e.RowIndex);
            }
            if (e.ColumnIndex == 3)//Chon nut xem
            {
                //MessageBox.Show(thuhientai);
                dgv_NVLMP.Rows.Clear();
                int MaDV = Int16.Parse(dgv_thucdondutru.Rows[e.RowIndex].Cells["colMaMon"].Value.ToString());
                dt = busDV.dLayDSNVLChoMotDichVu(MaDV);
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    dgv_NVLMP.Rows.Add(dt.Rows[i]["MaNL"], dt.Rows[i]["TenNL"].ToString(), dt.Rows[i]["SoLuongMotPhan"].ToString());
                }
            }
        }
        private bool KiemTraMaMonNVLMP(string manl)
        {
            bool kt = false;

            for (int i = 0; i < dgv_NVLMP.Rows.Count; i++)
            {
                if (dgv_NVLMP.Rows[i].Cells["colMaNL"].Value.ToString().CompareTo(manl) == 0)
                {
                    kt = true;
                    return kt;
                }
            }
            return kt;
        }

        //private void bttAddNVL_Click(object sender, EventArgs e)
        //{
        //    if (dgv_NVLMP.Rows.Count == 0)//Rong thi thong bao chon xem mon an
        //    {
        //        MessageBox.Show("Vui lòng chọn chức năng xem món ăn");

        //    }

        //    else// Nguoc lai luoi khac rong  // thi kiem tra co chua neu chua thi add con co rui thi ko add
        //    {
        //        if (!KiemTraMaMonNVLMP(cbbNVL.SelectedValue.ToString()))//Khong Co ton tai thi aadd
        //        {
        //            dgv_NVLMP.Rows.Add(cbbNVL.SelectedValue.ToString(), cbbNVL.Text, 0);
        //        }
        //        else //Co ton tai khong add them vao 
        //        {

        //        }

        //    }
        //}
        private void Load_DSNVLDT(int Ma,string thuhienhanh)
        {
            DataTable dtnvldt = new DataTable();
            int dem = 0;
            string chuoi = "thu " + thuhienhanh;
            dtnvldt = busNVL.dLayDanhSachNVLThucDon(Ma,chuoi);
            dgv_DSNVLDT.Rows.Clear();
            for (int i = 0; i < dtnvldt.Rows.Count; i++)
            {
                dem++;
                dgv_DSNVLDT.Rows.Add(dem.ToString(), dtnvldt.Rows[i]["MaNL"].ToString(), dtnvldt.Rows[i]["TenNL"].ToString(), dtnvldt.Rows[i]["DonVi"].ToString(), dtnvldt.Rows[i]["TSLCD"].ToString(), dtnvldt.Rows[i]["SoLuongTon"].ToString(), dtnvldt.Rows[i]["LoaiNL"].ToString());

            }

        }

        private void bttLuu_Click(object sender, EventArgs e)
        {
            ThucDonDuTru dto = new ThucDonDuTru();           
            DataTable dttddt = new DataTable();
            int stt;
            dttddt = busTDDT.LayDSThucDonDuTru();
            //Neu cai list DataTable tam trong thi thông báo chưa lên lịch .Ngược lại thì lưu
            if (list.Count == 0)
            {
                MessageBox.Show("Chưa lập lịch cho tuần");
            }
            else//Bat dau luu
            {
                //Lưu vào bảng ThucDonDuTru

                dto.NgayBatDau = dateTime_NgayBDTDDT.Value;
                dto.NgayKetThuc = dateTime_NgayKTTDDT.Value;
                stt=Int16.Parse( dttddt.Rows[0]["MaTuan"].ToString());
                stt++;
                dto.TenTuan = "tuan " + stt;
                if (busTDDT.ThemThucDonDuTru(dto))//Them thanh công
                {
                    //Them CTThucDon
                    DataTable dtMT = new DataTable();
                    CTThucDon ctdto = new CTThucDon();
                    dtMT = busTDDT.LayDSThucDonDuTru();
                    MaTuan=Int16.Parse( dtMT.Rows[0]["MaTuan"].ToString());
                    for (int i = 0; i < list.Count; i++)
                    {
                        for (int j = 0; j < list[i].Rows.Count; j++)
                        {
                            ctdto.MaDV =Int16.Parse( list[i].Rows[j]["MaMon"].ToString());
                            ctdto.MaTuan = MaTuan;
                            if (list[i].Rows[j]["Thu"].ToString().CompareTo("CN") == 0)
                            {
                                ctdto.Thu = "chu nhat";
                            }
                            else
                            {
                                ctdto.Thu = "thu " + list[i].Rows[j]["Thu"].ToString();
                            }
                            ctdto.NgayApDung = DateTime.Now;
                            ctdto.SoPhanBan =Int16.Parse( list[i].Rows[j]["SoPhan"].ToString());
                            busCTTD.ThemCTThucDon(ctdto);//Them vào bảng CTThucDon
                           
                        }

                    }
                    MessageBox.Show("Lưu thành công");
                   // bttLuu.Visible = false;
                   //Load vao luoi danh sach nguyen lieu thực đơn với tuần hiện hành  và thứ hiện hành 
                    Load_DSNVLDT(MaTuan, thuhientai);

                }
                else
                {
                    MessageBox.Show("Lưu thất bại");
                }
                //Lưu vào bảng CTThucDon.Ứng với một bảng ThucDonDuTru có nhiều  bảng CTThucDon
            }

        }
        private bool KiemTraMaNL(string maNL)
        {
            bool kt = false;

            for (int i = 0; i < dgv_DSNVLCN.Rows.Count; i++)
            {
                if (dgv_DSNVLCN.Rows[i].Cells["ColnMaNL"].Value.ToString().CompareTo(maNL) == 0)
                {
                    kt = true;
                    return kt;
                }
            }
            return kt;
        }
        private void dgv_DSNVLDT_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 7)//Chon chuc nang Add 
            {
                if (dgv_DSNVLCN.Rows.Count == 0)//Luoi rong thi add vao
                {
                    dgv_DSNVLCN.Rows.Add(dgv_DSNVLDT.Rows[e.RowIndex].Cells["ClnMaNL"].Value.ToString(), dgv_DSNVLDT.Rows[e.RowIndex].Cells["ClnTenNL"].Value.ToString(), dgv_DSNVLDT.Rows[e.RowIndex].Cells["ClnLoaiNL"].Value.ToString(), dgv_DSNVLDT.Rows[e.RowIndex].Cells["ClnDonVi"].Value.ToString());
                    //if (thuhientai.CompareTo("2") == 0)
                    //{
                    //    lblthu2_Click(sender, e);
                    //}
                }
                else// Nguoc lai luoi khac rong  // thi kiem tra co chua neu chua thi add con co rui thi ko add
                {
                    if (!KiemTraMaNL(dgv_DSNVLDT.Rows[e.RowIndex].Cells["ClnMaNL"].Value.ToString()))//Khong Co ton tai thi aadd
                    {
                        //dgv_thucdondutru.Rows.Add(dgv_baocao.Rows[e.RowIndex].Cells["MaMon"].Value.ToString(), dgv_baocao.Rows[e.RowIndex].Cells["tenmonan"].Value.ToString());
                        dgv_DSNVLCN.Rows.Add(dgv_DSNVLDT.Rows[e.RowIndex].Cells["ClnMaNL"].Value.ToString(), dgv_DSNVLDT.Rows[e.RowIndex].Cells["ClnTenNL"].Value.ToString(), dgv_DSNVLDT.Rows[e.RowIndex].Cells["ClnLoaiNL"].Value.ToString(), dgv_DSNVLDT.Rows[e.RowIndex].Cells["ClnDonVi"].Value.ToString());
                        //if (thuhientai.CompareTo("2") == 0)
                        //{
                        //    lblthu2_Click(sender, e);
                        //}
                    }
                    else //Co ton tai khong add them vao 
                    {

                    }

                }
            }
        }
        private bool KiemTraSLCN()
        {
            bool kt = true;
            for (int i = 0; i < dgv_DSNVLCN.Rows.Count; i++)
            {
                if (dgv_DSNVLCN.Rows[i].Cells["ColnSLCanNhap"].Value == null)
                {
                    kt = false;
                    return kt;
                }
            }
            return kt;
        }

        private void bttLapPhieuYCNL_Click(object sender, EventArgs e)
        {
            
            //Thêm vào bảng Phiếu Yêu Cầu Nguyên Liệu
            PhieuYeuCauNL pycdto = new PhieuYeuCauNL();
            DataTable dttam=new DataTable();
            //Kiểm tra ô SL Cẩn Nhập còn trống hay không ?
            if (dgv_DSNVLCN.Rows.Count == 0)
            {
                MessageBox.Show("Không có nguyên liệu nào được yêu cầu");
                return;
            }
            if (KiemTraSLCN())
            {
                //Thi luu bảng Phiếu Yêu Cầu Nguyên Liệu
                pycdto.NgayYeuCau = DateTime.Now;
                pycdto.KhoNhanPhieu =0;
                pycdto.NVLapPhieuYC = NV.MaNV;
                if (busPYCNL.ThemPhieuYCNL(pycdto))//Thêm bảng thành công
                {
                    //Thêm các bảng chi tiết 
                    int MaPhieu;
                    dttam = busPYCNL.LayDSPhieuYCNL();
                    MaPhieu = Int16.Parse(dttam.Rows[0]["MaPhieuYC"].ToString());
                    for (int i = 0; i < dgv_DSNVLCN.Rows.Count; i++)
                    {
                        CTPhieuYeuCauNL ctdto = new CTPhieuYeuCauNL();
                        ctdto.MaPhieuYC = MaPhieu;
                        ctdto.MaNL = Int16.Parse(dgv_DSNVLCN.Rows[i].Cells["ColnMaNL"].Value.ToString());
                        ctdto.SoLuongYeuCau = Int16.Parse(dgv_DSNVLCN.Rows[i].Cells["ColnSLCanNhap"].Value.ToString());
                        busCTPYCNL.ThemCTPhieuYCNL(ctdto);
                    }
                    MessageBox.Show("Thêm thành công");

                }
                else
                {
                    MessageBox.Show("Thêm thất bại");
                }

            }
            else
            {
                MessageBox.Show("Vui lòng nhập giá trị cho Số Lượng Cần Nhập");
            }

        }          
    }
}
